#ifndef _DATA_MODEL_H
#define _DATA_MODEL_H
#include "CG_flip_flop.h"
#include "CG_union_find.h"
using namespace std;

class DataModel {
public:
	DataModel(CG_ff_grid &grid, short sat) 
			: mGrid(grid), mK(sat) {
		CG_flip_flop *ff = grid.CG_ff_grid_get_first();
		while (ff) {
			mDM.insert(ff);
			ff = grid.CG_ff_grid_get_next(ff);
		}
	}
	bool DoPerfectMatchingRev1();
private:
	CG_ff_grid &mGrid;
	UnionFind <CG_flip_flop*> mDM;
	short mK;		// Size of required set
};

bool DataModel::DoPerfectMatchingRev1() {
	
	return true;
}

#endif //_DATA_MODEL_H